package com.molichuxing.gateway.bff.order.entity.response;

import com.molichuxing.framework.dto.ResponseRootDto;
import com.molichuxing.services.property.OrderExclusivelStatusEnum;
import com.molichuxing.services.property.OrderPaymentMethodEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 专属里程列表vo
 * 
 * @author zoumingyu
 * @date 2019年8月23日
 *
 */
@Data
public class OrderExclusivelVo extends ResponseRootDto {
	private static final long serialVersionUID = 7502492945355051310L;

	@ApiModelProperty(value = "订单号")
	private Long orderCode;
	
	@ApiModelProperty(value = "征信类型：1：茉莉征信，2：安鹏征信")
    private Integer type;
	
	@ApiModelProperty(value = "征信类型str")
    private String typeStr;
	
	@ApiModelProperty(value = "用户id")
	private Integer userId;

	@ApiModelProperty(value = "用户账号")
	private String userName;

	@ApiModelProperty(value = "用户姓名")
	private String userRealName;

	@ApiModelProperty(value = "用户手机")
	private String userPhone;

	@ApiModelProperty(value = "下单门店id")
	private Integer placeStoreId;

	@ApiModelProperty(value = "下单门店")
	private String placeStoreName;

	@ApiModelProperty(value = "车型名称id")
	private Integer vehicleId;

	@ApiModelProperty(value = "车型名称")
	private String vehicleName;

	@ApiModelProperty(value = "付款方式(1：全款，2：分期)")
	private Integer paymentMethod;
	
	@ApiModelProperty(value = "付款方式str")
	private String paymentMethodStr;

//	@ApiModelProperty(value = "还款周期(1：1个月，n：n个月)")
//	private Integer repaymentPeriod;
//
//	@ApiModelProperty(value = "首付期数（1：1期，2：2期，n：n期）")
//	private Integer firstTerms;
//
//	@ApiModelProperty(value = "结算日")
//	private Integer settleDay;
	
	@ApiModelProperty(value = "付款方式详情")
	private List<ParamDetailVo> paymentMethodDetail;

	@ApiModelProperty(value = "是否回购(0：不回购，1：回购)")
	private Boolean isBuyback;

	@ApiModelProperty(value = "用车时长")
	private Integer transportTime;

	@ApiModelProperty(value = "订单总金额")
	private BigDecimal totalAmount;

	@ApiModelProperty(value = "下单时间")
	private LocalDateTime orderTime;
	
	@ApiModelProperty(value = "订单状态()")
	private Integer orderStatus;

	@ApiModelProperty(value = "订单状态str")
	private String orderStatusStr;

	@ApiModelProperty(value = "审核状态str")
	private String auditStatusStr;

	@ApiModelProperty(value = "退款状态str")
	private String refundStatusStr;

	@ApiModelProperty(value = "退租时间")
	private LocalDateTime renegeTime;

	@ApiModelProperty(value = "是否用车（0：未用车，1：已用车）")
	private Boolean isCar;

	@ApiModelProperty(value = "车型图片")
	private String vehicleImg;

	@ApiModelProperty(value = "车辆id")
	private Integer carId;

	@ApiModelProperty(value = "车架号")
	private String vin;

	@ApiModelProperty(value = "车牌号")
	private String licencePlate;

	public void setOrderStatus(OrderExclusivelStatusEnum orderStatus) {
		this.orderStatus = orderStatus == null ? null : orderStatus.getValue();
		this.orderStatusStr = orderStatus == null ? null : orderStatus.getName();
	}

	public void setPaymentMethod(OrderPaymentMethodEnum paymentMethod) {
		this.paymentMethod = paymentMethod == null ? null : paymentMethod.getValue();
		this.paymentMethodStr = paymentMethod == null ? null : paymentMethod.getName();
	}
}
